<?php

namespace Syrius\Config;

/**
 * @package Config
 * @author <domenico.biancardi@gmail.com>
 * Sistema di settaggi delle configurazioni. Tutte le impostazioni sono accessibili tramite getter/setter
 */ class Config {
	private static $_autoLearn;

	private static $_charset;

	private static $_collation;

	private static $_dateFormat = "d/m/Y";

	/**
	 * Flag che permette di attivare un debug sul sistema
	 */
	private static $_debug = false;

	private static $_engine;

	private static $_delimiter = "aaa";

	/**
	 * @return the $_delimiter
	 */
	public static function getDelimiter() {
		return Config::$_delimiter;
	}

	/**
	 * @param field_type $_delimiter
	 */
	public static function setDelimiter($_delimiter) {
		Config::$_delimiter = $_delimiter;
	}

	public static function getAutoLearn() {
		return self::$_autoLearn;
	}

	public static function getCharset() {
		return self::$_charset;
	}

	public static function getCollation() {
		return self::$_collation;
	}

	public static function getDateFormat() {
		self::$_dateFormat;
	}

	public static function getDebug() {
		return self::$_debug;
	}

	public static function getEngine() {
		return self::$_engine;
	}

	/**
	 * Impostazione del charset predefinito per la creazione delle tabelle
	 */
	public static function setCharset($charset) {
		$list = self::$_autoLearn ["charset"];
		$i = 0;
		while ($i < count($list) && ($list [$i]->Charset != $charset)) {
			$i++;
		}

		if ($i >= count($list))
			throw new Exception ("Charset $charset non esiste");
		self::$_charset = $charset;
	}

	public static function setCollation($collation) {
		$list = self::$_autoLearn ["collation"];
		$i = 0;
		while ($i < count($list) && ($list [$i]->Collation != $collation)) {
			$i++;
		}

		if ($i >= count($list))
			throw new Exception ("Collation $collation non esiste");
		self::$_collation = $collation;
	}

	/**
	 * Imposta il formato di default delle date che vengono lette da database
	 */
	public static function setDateFormat($format = "d/m/Y") {
		self::$_dateFormat = $format;
	}

	public static function setDebug($mode) {
		if ($mode) {
			// quando viene attivato il debug viene stampata a video la versione di Syrius utilizzata
			echo "Syrius v." . Version::getVersion();
		}
		self::$_debug = $mode;
	}

	/**
	 * Impostazione dell'engine predefinito per la creazione delle tabelle
	 */
	public static function setEngine($engine) {
		$list = self::$_autoLearn ["engine"];
		$i = 0;
		while ($i < count($list) && ($list [$i]->Engine != $engine)) {
			$i++;
		}

		if ($i >= count($list))
			throw new Exception ("Engine $engine non esiste");
		self::$_engine = $engine;
	}

	public static function setAutoLearn($data) {
		Config::$_autoLearn = $data;
	}

}

?>
